{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn import tree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x23716898f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 载入数据\n",
    "data = np.genfromtxt(\"LR-testSet.csv\", delimiter=\",\")\n",
    "x_data = data[:,:-1]\n",
    "y_data = data[:,-1]\n",
    "    \n",
    "def plot():\n",
    "#     x0 = []\n",
    "#     x1 = []\n",
    "#     y0 = []\n",
    "#     y1 = []\n",
    "#     # 切分不同类别的数据\n",
    "#     for i in range(len(x_data)):\n",
    "#         if y_data[i]==0:\n",
    "#             x0.append(x_data[i,0])\n",
    "#             y0.append(x_data[i,1])\n",
    "#         else:\n",
    "#             x1.append(x_data[i,0])\n",
    "#             y1.append(x_data[i,1])\n",
    "\n",
    "#     # 画图\n",
    "#     scatter0 = plt.scatter(x0, y0, c='b', marker='o')\n",
    "#     scatter1 = plt.scatter(x1, y1, c='r', marker='x')\n",
    "#     #画图例\n",
    "#     plt.legend(handles=[scatter0,scatter1],labels=['label0','label1'],loc='best')\n",
    "    \n",
    "plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_split=1e-07, min_samples_leaf=1,\n",
       "            min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
       "            presort=False, random_state=None, splitter='best')"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 创建决策树模型\n",
    "model = tree.DecisionTreeClassifier()\n",
    "# 输入数据建立模型\n",
    "model.fit(x_data, y_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'computer.pdf'"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 导出决策树\n",
    "import graphviz # http://www.graphviz.org/\n",
    "\n",
    "dot_data = tree.export_graphviz(model, \n",
    "                                out_file = None, \n",
    "                                feature_names = ['x','y'],\n",
    "                                class_names = ['label0','label1'],\n",
    "                                filled = True,\n",
    "                                rounded = True,\n",
    "                                special_characters = True)\n",
    "graph = graphviz.Source(dot_data)\n",
    "graph.render('computer')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n",
       "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\r\n",
       " -->\r\n",
       "<!-- Title: Tree Pages: 1 -->\r\n",
       "<svg width=\"539pt\" height=\"671pt\"\r\n",
       " viewBox=\"0.00 0.00 539.00 671.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 667)\">\r\n",
       "<title>Tree</title>\r\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-667 535,-667 535,4 -4,4\"/>\r\n",
       "<!-- 0 -->\r\n",
       "<g id=\"node1\" class=\"node\"><title>0</title>\r\n",
       "<path fill=\"#399de5\" fill-opacity=\"0.113725\" stroke=\"black\" d=\"M278.5,-663C278.5,-663 189.5,-663 189.5,-663 183.5,-663 177.5,-657 177.5,-651 177.5,-651 177.5,-592 177.5,-592 177.5,-586 183.5,-580 189.5,-580 189.5,-580 278.5,-580 278.5,-580 284.5,-580 290.5,-586 290.5,-592 290.5,-592 290.5,-651 290.5,-651 290.5,-657 284.5,-663 278.5,-663\"/>\r\n",
       "<text text-anchor=\"start\" x=\"200.5\" y=\"-647.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">y ≤ 8.5616</text>\r\n",
       "<text text-anchor=\"start\" x=\"192.5\" y=\"-632.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.4982</text>\r\n",
       "<text text-anchor=\"start\" x=\"186.5\" y=\"-617.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 100</text>\r\n",
       "<text text-anchor=\"start\" x=\"185.5\" y=\"-602.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [47, 53]</text>\r\n",
       "<text text-anchor=\"start\" x=\"190\" y=\"-587.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 1 -->\r\n",
       "<g id=\"node2\" class=\"node\"><title>1</title>\r\n",
       "<path fill=\"#399de5\" fill-opacity=\"0.905882\" stroke=\"black\" d=\"M213.5,-544C213.5,-544 132.5,-544 132.5,-544 126.5,-544 120.5,-538 120.5,-532 120.5,-532 120.5,-473 120.5,-473 120.5,-467 126.5,-461 132.5,-461 132.5,-461 213.5,-461 213.5,-461 219.5,-461 225.5,-467 225.5,-473 225.5,-473 225.5,-532 225.5,-532 225.5,-538 219.5,-544 213.5,-544\"/>\r\n",
       "<text text-anchor=\"start\" x=\"143.5\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">y ≤ 5.992</text>\r\n",
       "<text text-anchor=\"start\" x=\"131.5\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.1576</text>\r\n",
       "<text text-anchor=\"start\" x=\"129.5\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 58</text>\r\n",
       "<text text-anchor=\"start\" x=\"128.5\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [5, 53]</text>\r\n",
       "<text text-anchor=\"start\" x=\"129\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;1 -->\r\n",
       "<g id=\"edge1\" class=\"edge\"><title>0&#45;&gt;1</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M212.836,-579.907C208.294,-571.195 203.446,-561.897 198.752,-552.893\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"201.853,-551.27 194.126,-544.021 195.646,-554.506 201.853,-551.27\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"186.624\" y=\"-564.168\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\r\n",
       "</g>\r\n",
       "<!-- 12 -->\r\n",
       "<g id=\"node13\" class=\"node\"><title>12</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M336.5,-536.5C336.5,-536.5 255.5,-536.5 255.5,-536.5 249.5,-536.5 243.5,-530.5 243.5,-524.5 243.5,-524.5 243.5,-480.5 243.5,-480.5 243.5,-474.5 249.5,-468.5 255.5,-468.5 255.5,-468.5 336.5,-468.5 336.5,-468.5 342.5,-468.5 348.5,-474.5 348.5,-480.5 348.5,-480.5 348.5,-524.5 348.5,-524.5 348.5,-530.5 342.5,-536.5 336.5,-536.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"267\" y=\"-521.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"252.5\" y=\"-506.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 42</text>\r\n",
       "<text text-anchor=\"start\" x=\"251.5\" y=\"-491.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 0]</text>\r\n",
       "<text text-anchor=\"start\" x=\"252\" y=\"-476.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label0</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;12 -->\r\n",
       "<g id=\"edge12\" class=\"edge\"><title>0&#45;&gt;12</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M255.511,-579.907C261.358,-568.873 267.704,-556.898 273.599,-545.773\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"276.835,-547.142 278.424,-536.667 270.649,-543.864 276.835,-547.142\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"285.767\" y=\"-556.864\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\r\n",
       "</g>\r\n",
       "<!-- 2 -->\r\n",
       "<g id=\"node3\" class=\"node\"><title>2</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M152.5,-417.5C152.5,-417.5 71.5,-417.5 71.5,-417.5 65.5,-417.5 59.5,-411.5 59.5,-405.5 59.5,-405.5 59.5,-361.5 59.5,-361.5 59.5,-355.5 65.5,-349.5 71.5,-349.5 71.5,-349.5 152.5,-349.5 152.5,-349.5 158.5,-349.5 164.5,-355.5 164.5,-361.5 164.5,-361.5 164.5,-405.5 164.5,-405.5 164.5,-411.5 158.5,-417.5 152.5,-417.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"83\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"68.5\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 43</text>\r\n",
       "<text text-anchor=\"start\" x=\"67.5\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 43]</text>\r\n",
       "<text text-anchor=\"start\" x=\"68\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;2 -->\r\n",
       "<g id=\"edge2\" class=\"edge\"><title>1&#45;&gt;2</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M151.836,-460.907C146.083,-449.873 139.84,-437.898 134.04,-426.773\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"137.019,-424.916 129.292,-417.667 130.812,-428.152 137.019,-424.916\"/>\r\n",
       "</g>\r\n",
       "<!-- 3 -->\r\n",
       "<g id=\"node4\" class=\"node\"><title>3</title>\r\n",
       "<path fill=\"#399de5\" fill-opacity=\"0.498039\" stroke=\"black\" d=\"M275.5,-425C275.5,-425 194.5,-425 194.5,-425 188.5,-425 182.5,-419 182.5,-413 182.5,-413 182.5,-354 182.5,-354 182.5,-348 188.5,-342 194.5,-342 194.5,-342 275.5,-342 275.5,-342 281.5,-342 287.5,-348 287.5,-354 287.5,-354 287.5,-413 287.5,-413 287.5,-419 281.5,-425 275.5,-425\"/>\r\n",
       "<text text-anchor=\"start\" x=\"203\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">x ≤ &#45;0.211</text>\r\n",
       "<text text-anchor=\"start\" x=\"193.5\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.4444</text>\r\n",
       "<text text-anchor=\"start\" x=\"191.5\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 15</text>\r\n",
       "<text text-anchor=\"start\" x=\"190.5\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [5, 10]</text>\r\n",
       "<text text-anchor=\"start\" x=\"191\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;3 -->\r\n",
       "<g id=\"edge3\" class=\"edge\"><title>1&#45;&gt;3</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M194.511,-460.907C199.127,-452.195 204.055,-442.897 208.826,-433.893\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"211.938,-435.496 213.527,-425.021 205.752,-432.218 211.938,-435.496\"/>\r\n",
       "</g>\r\n",
       "<!-- 4 -->\r\n",
       "<g id=\"node5\" class=\"node\"><title>4</title>\r\n",
       "<path fill=\"#e58139\" fill-opacity=\"0.749020\" stroke=\"black\" d=\"M214,-306C214,-306 134,-306 134,-306 128,-306 122,-300 122,-294 122,-294 122,-235 122,-235 122,-229 128,-223 134,-223 134,-223 214,-223 214,-223 220,-223 226,-229 226,-235 226,-235 226,-294 226,-294 226,-300 220,-306 214,-306\"/>\r\n",
       "<text text-anchor=\"start\" x=\"138\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">x ≤ &#45;1.9851</text>\r\n",
       "<text text-anchor=\"start\" x=\"140.5\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.32</text>\r\n",
       "<text text-anchor=\"start\" x=\"134.5\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 5</text>\r\n",
       "<text text-anchor=\"start\" x=\"133.5\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [4, 1]</text>\r\n",
       "<text text-anchor=\"start\" x=\"130\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label0</text>\r\n",
       "</g>\r\n",
       "<!-- 3&#45;&gt;4 -->\r\n",
       "<g id=\"edge4\" class=\"edge\"><title>3&#45;&gt;4</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M213.836,-341.907C209.294,-333.195 204.446,-323.897 199.752,-314.893\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"202.853,-313.27 195.126,-306.021 196.646,-316.506 202.853,-313.27\"/>\r\n",
       "</g>\r\n",
       "<!-- 7 -->\r\n",
       "<g id=\"node8\" class=\"node\"><title>7</title>\r\n",
       "<path fill=\"#399de5\" fill-opacity=\"0.890196\" stroke=\"black\" d=\"M336,-306C336,-306 256,-306 256,-306 250,-306 244,-300 244,-294 244,-294 244,-235 244,-235 244,-229 250,-223 256,-223 256,-223 336,-223 336,-223 342,-223 348,-229 348,-235 348,-235 348,-294 348,-294 348,-300 342,-306 336,-306\"/>\r\n",
       "<text text-anchor=\"start\" x=\"262.5\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">y ≤ 7.3196</text>\r\n",
       "<text text-anchor=\"start\" x=\"262.5\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.18</text>\r\n",
       "<text text-anchor=\"start\" x=\"252.5\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 10</text>\r\n",
       "<text text-anchor=\"start\" x=\"255.5\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 9]</text>\r\n",
       "<text text-anchor=\"start\" x=\"252\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 3&#45;&gt;7 -->\r\n",
       "<g id=\"edge7\" class=\"edge\"><title>3&#45;&gt;7</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M256.164,-341.907C260.706,-333.195 265.554,-323.897 270.248,-314.893\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"273.354,-316.506 274.874,-306.021 267.147,-313.27 273.354,-316.506\"/>\r\n",
       "</g>\r\n",
       "<!-- 5 -->\r\n",
       "<g id=\"node6\" class=\"node\"><title>5</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M92,-179.5C92,-179.5 12,-179.5 12,-179.5 6,-179.5 0,-173.5 0,-167.5 0,-167.5 0,-123.5 0,-123.5 0,-117.5 6,-111.5 12,-111.5 12,-111.5 92,-111.5 92,-111.5 98,-111.5 104,-117.5 104,-123.5 104,-123.5 104,-167.5 104,-167.5 104,-173.5 98,-179.5 92,-179.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"23\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"12.5\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"start\" x=\"11.5\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1]</text>\r\n",
       "<text text-anchor=\"start\" x=\"8\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 4&#45;&gt;5 -->\r\n",
       "<g id=\"edge5\" class=\"edge\"><title>4&#45;&gt;5</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M131.673,-222.907C119.476,-211.211 106.178,-198.457 94.0011,-186.78\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"96.2244,-184.062 86.5843,-179.667 91.3792,-189.115 96.2244,-184.062\"/>\r\n",
       "</g>\r\n",
       "<!-- 6 -->\r\n",
       "<g id=\"node7\" class=\"node\"><title>6</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M214,-179.5C214,-179.5 134,-179.5 134,-179.5 128,-179.5 122,-173.5 122,-167.5 122,-167.5 122,-123.5 122,-123.5 122,-117.5 128,-111.5 134,-111.5 134,-111.5 214,-111.5 214,-111.5 220,-111.5 226,-117.5 226,-123.5 226,-123.5 226,-167.5 226,-167.5 226,-173.5 220,-179.5 214,-179.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"145\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"134.5\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4</text>\r\n",
       "<text text-anchor=\"start\" x=\"133.5\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [4, 0]</text>\r\n",
       "<text text-anchor=\"start\" x=\"130\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label0</text>\r\n",
       "</g>\r\n",
       "<!-- 4&#45;&gt;6 -->\r\n",
       "<g id=\"edge6\" class=\"edge\"><title>4&#45;&gt;6</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M174,-222.907C174,-212.204 174,-200.615 174,-189.776\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"177.5,-189.667 174,-179.667 170.5,-189.667 177.5,-189.667\"/>\r\n",
       "</g>\r\n",
       "<!-- 8 -->\r\n",
       "<g id=\"node9\" class=\"node\"><title>8</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M336,-179.5C336,-179.5 256,-179.5 256,-179.5 250,-179.5 244,-173.5 244,-167.5 244,-167.5 244,-123.5 244,-123.5 244,-117.5 250,-111.5 256,-111.5 256,-111.5 336,-111.5 336,-111.5 342,-111.5 348,-117.5 348,-123.5 348,-123.5 348,-167.5 348,-167.5 348,-173.5 342,-179.5 336,-179.5\"/>\r\n",
       "<text text-anchor=\"start\" x=\"267\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"256.5\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 6</text>\r\n",
       "<text text-anchor=\"start\" x=\"255.5\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 6]</text>\r\n",
       "<text text-anchor=\"start\" x=\"252\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 7&#45;&gt;8 -->\r\n",
       "<g id=\"edge8\" class=\"edge\"><title>7&#45;&gt;8</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M296,-222.907C296,-212.204 296,-200.615 296,-189.776\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"299.5,-189.667 296,-179.667 292.5,-189.667 299.5,-189.667\"/>\r\n",
       "</g>\r\n",
       "<!-- 9 -->\r\n",
       "<g id=\"node10\" class=\"node\"><title>9</title>\r\n",
       "<path fill=\"#399de5\" fill-opacity=\"0.666667\" stroke=\"black\" d=\"M458,-187C458,-187 378,-187 378,-187 372,-187 366,-181 366,-175 366,-175 366,-116 366,-116 366,-110 372,-104 378,-104 378,-104 458,-104 458,-104 464,-104 470,-110 470,-116 470,-116 470,-175 470,-175 470,-181 464,-187 458,-187\"/>\r\n",
       "<text text-anchor=\"start\" x=\"384.5\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">y ≤ 7.6453</text>\r\n",
       "<text text-anchor=\"start\" x=\"380.5\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.375</text>\r\n",
       "<text text-anchor=\"start\" x=\"378.5\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4</text>\r\n",
       "<text text-anchor=\"start\" x=\"377.5\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 3]</text>\r\n",
       "<text text-anchor=\"start\" x=\"374\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 7&#45;&gt;9 -->\r\n",
       "<g id=\"edge9\" class=\"edge\"><title>7&#45;&gt;9</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M338.327,-222.907C347.979,-213.651 358.322,-203.732 368.252,-194.209\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"370.953,-196.469 375.748,-187.021 366.108,-191.416 370.953,-196.469\"/>\r\n",
       "</g>\r\n",
       "<!-- 10 -->\r\n",
       "<g id=\"node11\" class=\"node\"><title>10</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M397,-68C397,-68 317,-68 317,-68 311,-68 305,-62 305,-56 305,-56 305,-12 305,-12 305,-6 311,-0 317,-0 317,-0 397,-0 397,-0 403,-0 409,-6 409,-12 409,-12 409,-56 409,-56 409,-62 403,-68 397,-68\"/>\r\n",
       "<text text-anchor=\"start\" x=\"328\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"317.5\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"start\" x=\"316.5\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 0]</text>\r\n",
       "<text text-anchor=\"start\" x=\"313\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label0</text>\r\n",
       "</g>\r\n",
       "<!-- 9&#45;&gt;10 -->\r\n",
       "<g id=\"edge10\" class=\"edge\"><title>9&#45;&gt;10</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M395.286,-103.726C390.459,-95.0615 385.353,-85.8962 380.498,-77.1802\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"383.475,-75.3322 375.55,-68.2996 377.36,-78.7389 383.475,-75.3322\"/>\r\n",
       "</g>\r\n",
       "<!-- 11 -->\r\n",
       "<g id=\"node12\" class=\"node\"><title>11</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M519,-68C519,-68 439,-68 439,-68 433,-68 427,-62 427,-56 427,-56 427,-12 427,-12 427,-6 433,-0 439,-0 439,-0 519,-0 519,-0 525,-0 531,-6 531,-12 531,-12 531,-56 531,-56 531,-62 525,-68 519,-68\"/>\r\n",
       "<text text-anchor=\"start\" x=\"450\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"start\" x=\"439.5\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3</text>\r\n",
       "<text text-anchor=\"start\" x=\"438.5\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 3]</text>\r\n",
       "<text text-anchor=\"start\" x=\"435\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = label1</text>\r\n",
       "</g>\r\n",
       "<!-- 9&#45;&gt;11 -->\r\n",
       "<g id=\"edge11\" class=\"edge\"><title>9&#45;&gt;11</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M440.714,-103.726C445.541,-95.0615 450.647,-85.8962 455.502,-77.1802\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"458.64,-78.7389 460.45,-68.2996 452.525,-75.3322 458.64,-78.7389\"/>\r\n",
       "</g>\r\n",
       "</g>\r\n",
       "</svg>\r\n"
      ],
      "text/plain": [
       "<graphviz.files.Source at 0x237174d5b70>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD8CAYAAAB+UHOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJztvXuQZFl93/n5nXMzs95V3V39mOl5\nCk0QBoxGGyOQhCOExGNHYwSWA1vDerVYkmMsBSisCDssMBvCK8VuyKtYWwojezwrCNlahORYeSwC\nEDCy5EAKvRhYQMAwMDM0TE/PdHV1dde7MvPe89s/7s2qrKx7s+uR7/x9Iiqq8ubNe09lVZ7fOb/H\n9yeqimEYhjF+uH4PwDAMw+gPZgAMwzDGFDMAhmEYY4oZAMMwjDHFDIBhGMaYYgbAMAxjTDEDYBiG\nMaaYATAMwxhTzAAYhmGMKVG/B9COspvUyWiu38MwDMMYGtbqS8uqevYw5w60AZiM5vj+cz/W72EY\nhmEMDZ984d9+67DnmgvIMAxjTDEDYBiGMaaYATAMwxhTDm0ARORDIrIkIl9uOvYvReQFEflC9vVQ\nwWsfFJGnReQZEXlPJwZuGIZhnIyj7AB+E3gw5/i/UdX7s69PtD4pIh74deCHgVcA7xCRVxxnsIZh\nGEbnOLQBUNXPACvHuMdrgGdU9TlVrQG/A7ztGNcxjLFAg6K1GhrH/R6KMeJ0IgbwbhH5UuYiOpXz\n/EXg+abHl7NjuYjIIyLypIg8WQvbHRieYQwPycYmydWrJNdXSJauEV9bRpOk38MyRpSTGoB/D7wM\nuB94Efi/cs6RnGOFfShV9TFVfUBVHyi7yRMOzzCGh1CtoutroJp+AdTrJCs3+jswY2Q5kQFQ1auq\nmqhqAP5vUndPK5eBO5se3wFcOcl9DWMU0Y3N/KVRvW7uIKMrnMgAiMhtTQ9/FPhyzmmfBe4TkXtF\npAw8DHz0JPc1jFGk0NUjAiH0djDGWHBoKQgR+QjwemBRRC4D7wdeLyL3k65bLgH/ODv3duA3VPUh\nVY1F5N3ApwAPfEhVv9LR38IwRgCZqKAbBSv9qNTbwRhjwaENgKq+I+fwBwvOvQI81PT4E8CBFFHD\nMPZw0zMkW9sHVvsyO4u4vFCaYZyMgRaDM4xxQrzDnz1L2NxAd6qI98jMNK5S6ffQjBHFDIBhdAkN\ngbC5mU7mzh1qMhfv8HNzYCroRg8wA2AYXUBDILm2DFlgVwGtVtG5WfzMTH8HZxgZJgZnGF0gbG7u\nTv7N6No6ahk9xoBgBsAwOoiGQLKxkeb05yGC1uu9HVOSpNISZniMFswFZBgdQuM4dfvAXiXvwbMQ\n15t1l6oSbtxEd3bSWgJVZHoaNzeLiGUVGbYDMIyOkdxc3S/jkIePkFJvcvrD6mo6+cPumHRri7C5\n1ZP7G4OPGQDD6ACqCrVa8QkiEEX4M6d7Nh7dyhFTVEU3C9xTxthhLiDD6DYi+MUzPVv5A+13IRYL\nMDJsB2AYHUBEkImJ/OcmJ3s7+acDAp//8ZZyubdjMQYWMwCG0SHcwjxEUTr5Qvq9VMLNzfZ8LCKC\nm5/Pe+LE41FVNI4tq2gEMBeQYXQIcQ5/dhGt1SBOkFIEpVLfMm7cxASyuEjY2EDjGCmXcDMzSHT8\nj32ysYmur6cPVJGJCdypBcsqGlLMABhGBxERpFKBAZHvkXIJfzqvUd/RCTs7WcOavWO6s0O4eRN/\nqjP3MHqLuYAMwzgUYX0jt2GNbu+YO2hIMQNgGMbhsIY1I4cZAMMYAVSVsL2Tqo92SWqibfaQ9125\np9FdLAZgGEOOxjHJ8vW9KmQBqVRwp051NDjr5mZJqtWDNQYz00e+j6qmxmpzE4Km452bPVGA2jg6\ntgMwjCEnWbmRumAaE7OC7lQ7LvkgUYQ/u4hMTuylugKsbxBfv36kOEC4uYqurUOSjlt3dkiuLRf3\nRTa6wqENgIh8SESWROTLTcd+RUS+JiJfEpHHRWSh4LWXROSvReQLIvJkJwZuGKOOxnGq4tmmqlfj\nGOL8PsK61XnNH4kiZHLq4C6gWiO5ceNQ19AkQbfzZSpMp6i3HGUH8JvAgy3HngBepaqvBr4OvLfN\n639QVe9X1QeONkTDGC80SYivLZMsXSO5vkLy0lWSdvo9he6XNnIQJyBsbOQ/Ua0dagWv9XrhmLWd\nnpLRcQ5tAFT1M8BKy7FPq2pj+fEXwB0dHJthjCXJyg1oBHIzv76uraPV6sGTvS+cTGVysksDPFk2\nkHhfqFVkMYDe0skYwE8Cf1DwnAKfFpHPicgjHbynYYwUoV7fm/ybUSXkNJkRkbQIq9kIZMqjbnq6\nK2OUdn2NDzGBS6kEeRlFIriZ7ozZyKcj5lZE3gfEwIcLTnmdql4RkXPAEyLytWxHkXetR4BHACZ8\n7zVUjO6iqoT1jTT7QxXKJfz8fO/F0gYU3d4pfq5g5S2VMv7cWcLWNiQJUikjExNdk2dwszMk29v7\nV/EiyOzhG83406fSQHCjX4H3+IV52wH0mBO/2yLyTuAtwBu0IFqlqley70si8jjwGiDXAKjqY8Bj\nAPPl891xYhp9I9xc3R8ArNVJlq+n2SX24c938zQRL10DJ7jp6X2TvHiPn+1Ns3nxPjU46xvpeL3H\nzczgJg6vfyHO4U+fSgPc2rsuacZ+TvSJE5EHgZ8HfkBVc8P3IjINOFVdz35+M/CLJ7mvMZy0zf7Y\n2MAv5CaRjRlt1jxN2T6hvopM1vALOYqfPUCyFfuJryPSJohtdJujpIF+BPhz4OUicllEfgr4ADBL\n6tb5gog8mp17u4h8InvpeeBPReSLwF8BH1fVT3b0tzCGgzguzv6o56cyjhsyccjArSq6tZWmgRrG\nMTn0DkBV35Fz+IMF514BHsp+fg74rmONzhgtoqg4+6PUP/fPblxia2tP4nhuNs1W6TFuZppkZxvi\npH1XLwARtFYz15lxbOw/x+gZ4j0yMbEX+Nt9QnAzvfFf55FcX9nXz1e3t0mqVfy5sz33TYsIfnER\n3dlJ/evOoyGBvP6+AK63RqoR5jP9/9HADIDRU9ypBcLaWtqwXDVtlN6h7A8NgbC9DfUY1YD4CDc1\nhUTFk6TW61DPKT4KgbC1je9DWqKIpDn8WR6/xjFJngEQQSrda++oIRA2NtO4TUNnqKE1NDWFm5sz\nQzDkmAEweoqI4Ofn0bm53cedQGu1VBCt+RiQbGzgFhZwU/m+9VQ5U8gNvtZrQP/z0iWKcKdPEW7c\n3DvoHf706a5NwKqavp95MQYF3dwiBMWfssD9MGMGwOgLnZy4VDWtni0g3LyJTFRy3Tni23wEBsi3\n7iYmkAvnoZ4F0iPf1dW3bu9A0j7ArNvb6PycpXAOMYPzH24YbdB6PQ3U1utIqYSbndkrHqvH7QOm\nImi1lqpYtlIupXIKrStdEdzUVOd+gQ4gIul4e4DWqreWEhJJZSHMAAwt9pczBp6Ge0d3diBJUung\n5euEWxRN7aNgsSwi+DNn9ssbRBF+8UxfsoAGhsP87qrWCGbIsR2AMfAkq2sHV/iqhNU13LmzUIrS\n1WibXUA7/RrxDn/m9EBXpfY6+8ZNTZFsbBa/pyLI1NRAvlfG4TEDYAw+RS0O4xhV3RVES65fP3iO\ngDt1CpKEsL2Dqqb+9BxXSrerUjWOU0G3JIZyBTd96wlU63WS1VWoZe/BRAWpTODKpa7qJ4n3+DOn\nSW7cPKj+6RwyM901sTmjd5gBMAYf5/Jlhpsma6mU8RfOo9vbhHodQaAU4SYn0165K3tK5snmBjI5\nhZvvXRpj2KnuGwPVGsnmZqqBVOBG0STZa/XYYKeK7lRJMsVPf+Z011bhUk5F5kiSdMVv7p6Rw/Zv\nxsAjeSvNLBe9eQIX53DT00QLC/iFeXz2Ol1d3f9aTTNYdlfVXUZVCTdvHnwiBMJ6QXMVIGSVyQUX\nhXqd0Pq7dRgRSbuA2eQ/kpgBMAYeNzONTGcZOQ31y8lJ3Nyt5cJ1p5ofAFZNi8aOgKqmK/ntnSP1\nvyVJQPPPP1AV3UyR66v59ZlbK/e5ENBggrpGMeYCMgae3eKx2dl0MvX+iG6PgkKvI6C1WioZsXtA\nkfm53V1G+9u74tu3+z1KJdg5QqZTY2hxnPruGwakXMafWrBVvHEA2wEYA41mK/WwnrVEjKIjTf4y\nUcl3owiF1cF5Y0iur+yXQwB0dS2rJL7FGLwr7IC1u7PJwU1N3zooXSrtc4NpCCTXlvfvHmo1kuXl\nts3ljfHEDIAxsGiSkCxdI9xcJaxvEG6ukixdO1Tj8QbiHC6nz4BMTyN5k3LeONrUG4TN3DYYe68N\nAa3XcfPzaWVxU6aRTE62LTYT7/BnF6FI70fkgCa/bu/kG7ygqTvMMJowF5AxsITV1f0piKppOufq\nGv70qUNfx01NIpVy6m/P5J5bxeca6aT5A1EKfThFvn3Vve5njetOTeEmJyAEpFQ6lEtGoojozJns\nVoGwuZkGr0ulNI205RqF/QGy984wmjEDYAwkqsUr1raB0wLE+9xsomRzE13fSNNMvUNmZ/Etq3Kp\nlPPnf5HCBi5hbW2v+1ljRb61hUb+cHGDvNs5h59tH/iWcgndyimKkzQtdpDQWi3tYwypYSyXTV20\nxwzWf4Rh9JBkcxNdW9+bLJOA3lwlIPvjA3HBylkkjTG0oKponmtIFd3YhC4WUMnEBLj1g6v9KDq0\ny6sXJKtr6NbmrmFNtreRycm+tbgcVywGYAwkUjC5QjbJdQBd38j1l4f19X2Pk431A+ekJ4Z8f3u7\nYOtR0kePgYikxWVTk+mq3zlkeiotGBuQ1bXWY3Rzc/+uqtHi8hBBdaNzHMkAiMiHRGRJRL7cdOy0\niDwhIt/Ivuc6Z0Xkndk53xCRd5504Mbo4+bnwbs9H7oIeI+bnzvxtVW1eDJuXT232QGQFFQoF2Uq\ndVG+Yff2zuEXFohuu0B04Tx+fn6gNHu0WuzCC9tHd+8Zx+eo/xW/CTzYcuw9wH9T1fuA/5Y93oeI\nnAbeD7wWeA3w/iJDYRgNxHv8uXO4hXnc7AxuYT5t09iBfHZpN0m3XL9tv+KcsYhIvpESwXfCeCUJ\noVod3obwbXYi4gZjlzIuHMkAqOpngJWWw28D/mP2838E/k7OS/9H4AlVXVHVG8ATHDQkhnEAEcFN\nTuJmZ3GTkx11Y0hBQLW1wtjNzh6ctCRLJS2YsNzkJP7MmTSFM+uF7BfPnEjATVVJbtwgubpEWLlB\nsnSNZGVl6PL727nwioLqRnfoRBD4vKq+CKCqL4rIuZxzLgLPNz2+nB0zjL7hp6dIBHR9PXXleL9r\naJqRUilVxlxbS5vPNNQwb9EwRiplosqZwudVFa1W0c2tVKV0chKZKjZyYWMjzfNPX5x+26mmabFD\nFDwV73ELC6k+UuN3VUUW5tv2bzY6T6+ygHLVWHJPFHkEeARgwt9a68UwToKfmoJDdP6ScplocbGj\n9w5ra+jW9u5kHup12N5KG9TkGIHczCJIg6ddUjbdjZU4d+D6mgnSaZKkdQ1HaKHppiaRicpuqm9R\ny06ju3TCAFwVkduy1f9twFLOOZeB1zc9vgP473kXU9XHgMcA5svnh2tvO2ZoEtCd7bSwqVyBcmlg\nMk0GHY3jgxO6KtTqJDdu4mdmDvYsaJNBpCF0XOsn2dpC19ayQrhUfbUhoa1JkvZfaATBVdPK5oX5\nQ/8PiHNptpLRNzphcj8KNLJ63gn8fs45nwLeLCKnsuDvm7NjxpASqlWSpSXC6hphfYNkZYWwcmPo\n/NH9Qmu14mDozg7J9WWSm6v73882efzh2nJHg8Jhp5rKaDepierWFmF1DYDkxo00O6pZG2l7O5Ww\nNoaGo6aBfgT4c+DlInJZRH4K+GXgTSLyDeBN2WNE5AER+Q0AVV0Bfgn4bPb1i9kxYwhRVcLKjf35\n7qporbZX/Wq051bujqxngdZqey+ZnS3sbUwIaeewDhHW13OdtLq1RajHhb0UitxUxmByJBeQqr6j\n4Kk35Jz7JPCPmh5/CPjQkUZnDCZFxTqqhK3tWwZHjfY9indRTQ1qpUKysZEVrrU5v1prr2l0FIp0\ng0TQei3/OWhfBGcMHBZ1MYw+ICL4xTO33gkAYWcnzVTq4eSa1zO5gbbpYlZUvW0MJmYAjKNTKhW7\nIkRIrq+QrG8crWtWD0g7eu2QrNwgWbmRTqxdnlQ1ZP0MNrcO+OilVMKfP4dro2zqJqcIG7dY+Teu\nNznRsSB8fu2DwNRk22C0m7HMvWHCxOCMIyMi+FOnSRpNzpsn0Wo1nauq1Vs2Pe81YXV1n16+VqvI\nRAV/qjtF6fu7iCloWjzWXA2cah5NwKkFwo39fYNlejpVIr15C0O6K5HRuVoAKZXwi2cIa+tpHMJ7\n3OwM4j3JVkGcJ4rS5jfG0GAGwDgWUinjz59LJ9SGTn3ryjAEwtpa1ybYo6D1eppzv++gpj11p2sd\nV8rc10Ws+fjWJmGigmuJAbjJSaTc1LOgMrErQSGVCpqXXSOCzM6kOfhdkFJuFMC1/l6F509aSuew\nYebaODbiXNqUZHqq0C0wKF2o2o2jXcevY9+vVhAo1eJMGfEeNz2Nm5nZpz/kZmdy3TEyN4efmcFV\nKj2rvxARZH7uoAvQe1yb9pbGYGI7AKMDtJl8BkXcq904pAvroHaxhYYLShXd2UFrdSTyyORkbjVs\nKop3NpWCqNbS5jYz0wd2Eb3CT02hpVK660sCVCppZa9V8g4dZgCMEyNO9pX173tuqnvNT46CTEzC\n2lpuMFUmO9NfYN81i1xKIsjUZNq8fXk5nUBVURFYWy8UjBPv8R308Z8UKZXwOb2WjeHCTLbREdzC\nQtpysLnp+cQEbmZADIB3uFOn9saXfbnTp7oSpBbnUlfJvoOS+uonJtJCq0YlLexW1CYtgWDD6Ca2\nAzA6gjiHX1yEeowm8ZHFwXqBm5hALpzf9flLudJV/Xk/NYWWy6k8QtBU8Czz12tR45M4TsXVBiRz\nysgnigLOK7XqcP+dBusTagw1IpIKwtH9rlfHZTftslf3iyL8XF5zmHYvGpC4iXGAufkaP/u/fpnv\n+VvXcAJf/+o8v/ZLr+L5b870e2jHQgZZvOuVry7rb3/sfL+HYbTwWze+n6/8bfu7NNh+1UV+7bEP\nHOk1n/7Vi/zRo7cT7+ytIMUF7vruTX72977S9rUCnPMRp5wHhNUQczWJGayyu9HkvqhCWQSXGWlV\nJQBP13coEM/oOffffflzqvrAYc61GIBh9IEf/Okr3PXqTcpTCb4cqEzHzJ6N+Qe/+swtX3tvVGbR\nRZTEURLhtIt4WWQSDN1mOnu/XdMOTUQQYMENpyvIXECGcQs0UzpF0wK4TuTclyaUn/ndr3LpyVme\n/9I0py5WecUbbuJL7Xfk0+KYELdvEnKSOt3mxLGmtg/oFuWCv7sTYUIcDMwe4PCYATCMNoRqNZW+\nbsKdWsB1II4gAvd+zzr3fs/6oV8zKS43fOBFmHSOtcQMQLfYKTCuiSrbQ2p4zQVkGAVoCHt9D5q+\nwsoNtEguucvUNOTqwiWq1AY4njcKbGcTfWh6n9MYgHIzDN/qH8wAGEYhDV2e3Of61PhmXQMBDkxC\nCqwO6SQ0TFyKayyHmFiVRNOJ/5l6dWgD8OYCMowibtGDtx8o8Gy9yp1Ricls/bajgctxfWgmIQHm\nnWdaHDVVboSYzjWz7C4KXE3SrKtRwAyAYRSQdu3K8c+L9E2HB6CO8lxc292+D8vED6nL4WWlCiUE\nL0JQ5ayPuBTX2BpSP/owYwbAMAqQUinV7WnqIYCkmUDtGrT3ipNOl1eemuLxX7iHS5+bpTwZeO3D\nV3nonz9PVOleLOGsjyizl0rZ+H5nVOLp+mAox44TJ44BiMjLReQLTV9rIvJzLee8XkRWm875hZPe\n1zB6gZufx51aSCUcKhXcwgLu1KmeyS93ixsvlPn1t7+Cb352Fg1CddPzZx8+z2+9+76u3nfe+X0p\nrA0ihFLb8mijG5x4B6CqTwP3A4iIB14AHs859U9U9S0nvZ9h9JJd6Ygeykf0gj/50AXimqNZkyLe\n8Tz9mQWuf7vCmbu6sxpXpVAGQw/T99LoKJ12Ab0BeFZVv9Xh6xrGwDL55Rd4z/f/aL+HcSTi5etQ\nP9i0Jq55/tXf+aGO1Dnk8SN//xL/8Ge/zsTkngMrieEbTy3wz37i+7pyz/Hj3x76zE6ngT4MfKTg\nue8TkS+KyB+IyCuLLiAij4jIkyLy5I0VCwqNI3uN1DcPNFI3OkNzx7F9qHZVxfXjv3cXn/3Ts1R3\nHNtbjq1Nz/LSBL/83vu7dk+jmI79pUWkDLwVeG/O058H7lbVDRF5CPivQK6zUVUfAx6DVAyuU+Mz\nhoN9jdSzwKtMTeHm54be734cZuZq/K03vsTsXJ0v/NUi3/hqZ5rCuOmZtLl7S52DTFS6agBC4vjl\n9343d33HOi9/1SrLVyf44mfPEML4/W0HgU7+pX8Y+LyqXm19QlXXmn7+hIj8OxFZVNXlDt7fGHJU\nlaRRedt8fHsbnaj0VMb5KBxHDfQwTIvj7ijNNnLAj7/r66yHhOeTekeuf+WpKR5//z1cerJ3WUB5\n/FhP7zb6fPLuw5/bSQPwDgrcPyJyAbiqqioiryH9f77ewXsbt2BKHA7YLJASGAhq9fzKW9W0kfqA\nGoBucVdUxjftejww6zzzGo5U9TsrjnM+oiyObQ1cTepsq3L739jiXf/5q10YuTEsdMQAiMgU8Cbg\nHzcd+2kAVX0UeDvwMyISA9vAwzrIjQhGiAkR7okqu8EeAV5I6gOpXdIuC2RU/l3OOM9ZH+ERtjXw\nYjYZtzLVRvRtQTyrh1SeXHCei760m3o5g2M6qvBcXM29rzFedMQAqOoWcKbl2KNNP38A6Pwe2WiL\nAPdGFaIW3/lFX2JbA9UBmwAKG6kDbmqyhyPpDhd8xGkX7a7qp8XzHeJ4Nq6yc4S/xVFCIbc1Tf7p\nawVUOe9LXIoPZgEZ44WJwY0wMwWrSIGsm9RgISJpc/n9B6FcRiaH2wA44EzT5N9AgLPu4Dpsq43q\n541D7t48+R9wEWFK7KNvmBTESNM62TQQEaIBrbp0kxNI6SxhaxtC2NdI/aRorUbY2Eybrk9UcNPT\niOvNRFgSyZ3QJdPxz/PofDuucXdURkgNRQDWQ3Jo/3+7JOpxlY4WGNwYWB8wAzDCbIQE8QcbtCeq\nrA1gDKBB2kh9tqPXTLa20Juru4+1XifZ3MKfXUR893dDddVck6uqVEP+lLSpgafrO8w7j0fY0ORI\nfnsFrod4n9sJUinppQ5lEg0Lp5znvC8Rkdraq0mdlQH+DPQK2weOMDFwLYlJVHeDqIkqOxrGqnWg\nqqKrawefCIGwsdmTMQTgRkhIWlNcgaVQPBknwEpIuBbiYwVtX0piVkJMUCWoEqtyJamP1d9/wXlu\n9yVKIunuV4QLvjSQbtBeYzuAEWcpxGxq4LTzeBFuHsGFMDK0qSbWnR2Yn+vJMK4kdWJVFn2EA6rZ\nZNztbJyXMv16D0Oju99JzvvogACdF+G8Lx06njKqmAEYAzY1sDnOvWKdK+zsRZdjAHNZE/cdDaxr\nYCnELIXeT8PKeE7+QKHKqE1+9h4YfULrdcL2Tqq2OTnRVfkB8R7KpbTQbN8T4Gamu3JPT9r4JEJw\npC6gBOXZenWgJuIKwm1RiRlxmZsq5qUkHqlAaVWViZwkgvpI/ZbHw2IARs9JVtdIlpfRjQ3C+jrJ\n0jWSze764v2pU1AqpWml2WQg0zNdk5e43Zd2u16JpN9LCLfnBOX7RURqpGbE7Y7xtIt25SdGhZeS\n+r4eypAGwl8akbaOJ8F2AEZP0VodzZnsdXUNnZjoWkaOeE90dhGt19EQ0m5fXXT/zOU0PhER5pyH\nlgycRec560t4YEeVF5M6mz0I0p52aTJwc4qtE2EaRwWhOiIr5HUNfDuucd6XqIhQU+XqmAXCizAD\nYPSUsL2d/4QIulNFpqe6en8pFfed8j4wO19nfbVEkvRmc3zeRZzxe2makyLcI+WeSDVMisvtzqVA\nRWTgKsVPwroG1mNrOdmKGQDjyPz4qT+DPzveaz/xf97JHz96O9oi/1uejHnbez/Pax++1oERHp1F\nF3HOR7uFQktJzPIJgrVrITmwC9CW+guBNCMopzr4nCvxraS7Ug2BND24tchOYGRW/0Z7LAZg9JT7\n33KdqHxw6x0S4RVvvNGHEcFp5zmXrcJd5gs/5yNOnyBP/EpSp47u1mAkqtRJ0z4blCiuDp5w3a3U\nnszcUa2Tv6qyOYA6UUZ3MANg9JTbX7HFG971AlElwZcDUSUhqgTe/n88x+xif4Jy53zpgGxGwwgc\nlwT4er3K5bjGUhJzOa7x9ZYMoDptqoO7PAEvumIxkBfj7lcJD6YQyfhhLiCj57zxZ69w/49c5yt/\neApfUv7mgyvMn++fNEHRh6ATeklrbaquFVgO8QGROCWVKugmjarYVgIQddH/f9ZFnM0K4eooV+I6\n6xaM7RtmAIy+sHhPlR/4Ry/1exhAcZ54L9wgV5OYoGkswNO76uBNDUzqwSCwANtdmpDPu2hfzKOM\ncFdU5lJc60nWk3EQMwDG2PNSUucuKe+bDEOWjtkLroWYaz2uDl5OUpE4VHd/70SV5SRuqyJ6XAQ4\nkxPwdiKc9xHPWW+CvmAGwBh71jVwKa5x3kdUxFHVwNUkHulVaQJ8o77DOV9i1jliVZa7qBMVIYUO\ntYr1JugbZgAMg9QlMm6r0Jg0W+mQ3SUPxaQIQQ+mkcYFDT9V9ZYup7SxjZh0QxfomAEQkUvAOum/\nU6yqD7Q8L8CvAQ8BW8A/VNXPd+r+hmF0lhLCtHMEVdYLOpQ1mBPHxabmNTVVvhXXqGWvatRWtCpz\ntgt4R8BdUZnJbIcQozwf19ka4Z1Zr+n0DuAHVXW54LkfBu7Lvl4L/Pvsu2EYA8a5LFunedL/ZkF1\ncgXhzmh/DKUC3Fsq83R9r/p2OcQkKOd8RISwo4EXk+I+B99RqlBmL1upjHBPVOYb9artBjpEL11A\nbwP+k6adSf5CRBZE5DZVfbGHYzCMY+NIfdn1AnfGqDAtLrdC+Z6owlP1nQPnn/b+gH9fRPCaXqs5\nlnIjJIfS4J8Sl8YNcrKUTntU+byRAAAZGUlEQVTPVRNy6widNAAKfFpEFPgPqvpYy/MXgeebHl/O\njpkBMIDU5VCSdGU4SJt8Ae7wJeac3534XxrhloKnnc9vJs/BCR2ghCvs2RyJHKsJb7ngek6EspWR\ndYxOGoDXqeoVETkHPCEiX1PVzzQ9n1v02HpARB4BHgG47aK1bBsHHKmvd1ocSvqPshzigVnlNSb/\n5hXxBV+invnGRw3JWXk3yDMM65owo+5ANbUAW+F4789WCEjOxz/JpCqMztCx/CtVvZJ9XwIeB17T\ncspl4M6mx3cAV3Ku85iqPqCqD5w6belh48BFX2I6U6Zs6PGccRELA9Cz1ZEv7exFOHsCqYhBZlUP\n9i6GdELPm3xvhoRa1nO4QaLK9RAf21dfIxXOa75mUCVBx76NYyfpyAwrItMiMtv4GXgz8OWW0z4K\n/C+S8r3Aqvn/jXYT7KI7+QQrnGybGxUItkEqpzCKrIaELQ27RkCzyf2FpJ7rmlPgubjK1SRmOwQ2\nQsLluHbihivPJ3VeTOrshEBNAysh5pm66ZR2kk4tYc4Dj2fbxgj4bVX9pIj8NICqPgp8gjQF9BnS\nNNCf6NC9jSGm3QokOuEE29Dab0g8X03qXD/i6rFWMN0E1WO7N4aBS3GNWXHMOk+CcjNJ2kpEB1K3\n3UkktPNYCcnIxloGgY4YAFV9DviunOOPNv2swLs6cT9jdIhJe+W6lhCRqrJxgg/+2ZZGK5D67RNS\nl8VReDGpc7sv7e5SgmpmUAYjRtEt1jWwnoyukTNMDtoYAF6I056tmrkcUl/vySbYsy2TP6QZJMeR\neL4REr4V19gICTUNrIaEZ+rVwt2BYQwLoxnFMoaKdQ08F1dZdKkWz6YmXEtijjv9C8Urm+KGkO3Z\n0MDGmElFGKOPGQBjINhW5fkOqW8qqWzAcSf7VqbF7ROKeymJTY7AGAnMBWSMJDthz6XUjJJO6Idl\nVhz3RGWmnScSYdp57o3KzJiCpTEC2H+xMZIEKCxmOkp1wW1RKVfD/oIvHX9whjEgmAEwRpJA/g7A\nkV/MVESRVn1eBzHDGDbMABgjyaQU69MchbhAqTK2DCBjBLAgsDGSuIK5X0mbiySHnMCvJXXO+9KB\ndpHdqgEokUpMzIijTtqicRT1hozBwAyAMZKshYTTTg7472P0SPo0yyFBskm5UVG8lNS7okdTQvjO\nUgVPGr+okMoivzjCyqNGfzEDYIwkS0nMnPN4TXWFGtW7l+OjpZpOZ6mfT9d3EDh2bcJhOOuj3cm/\nQSPgfCMcds9iGIfHDIAxkqRNz6ssOM+0OGooK0ly6NV/RYR7o8pukExItYSWu7gSn24Tt6iIsFMQ\njxg1IuC0iyiLsKmBm2b8uoYZAGNkCWRiYsfoen5vVCFi/2r8vC+xpdq1IrCiwLJQHIzuBgKc9xEL\nLnV7rYaEq0m9k73jC5nMDK+Q7n7mNG0h+Uy92pP7jxuWBWQYLUyJw3GwjkBIu2V1i2tJvE//HtKA\n80YIXXU9tXJvVOaMiyiJEIlwynleVqr0pA/XHb682xMCUvddhHDO6i66ghkAw2ihaIoXEQ52v+0c\nGxq4ktRJVEkyDf6NEHg+6Z0G0bQ4JrLmPA1cNgnPdblBjye/FaQTYX4AmgONIuYCMowWNjXkTvOJ\nKqua74hwpH7rOeeoq3I9a6pyVG6EhJshoSxCnKmi9pIJkdzf3YswKcJqF+/dzsmlFgXoCmYADKOF\nAFzJegAI6co/UWUnk4JuxQH3lSpEpK4LVWXOea4cM11UgWqfAr41zZ9qE1VqXR5TIDW+My1N5oMq\n1xOLAHQDMwBGLiXSbbcjbfq9PSYZKA1uhIQdDZx2ER5hTRNWC7JRFl20O/lDajAEuN2XmHep06ix\nsu81Asw7z6QIVVVuhiS3rWODdQ1pgx7di4FoZhR6Mf7LcY3vKFWIsjdagI0QOt5pzEgxA2AcYE4c\nd0ZlIP0AniXiRki40iG55mFhO+uDeytmc3oaQ/rezWa+60lxzDvPt7rYU8ABE+KIVamheMgKywSf\n7WLO+xLP3qKZzbP1KndEZWayEOGWhrRpT9dGvkcMfL1eZVocJRG2NfRtNzQOnNgAiMidwH8CLpDu\n4h5T1V9rOef1wO8D38wO/RdV/cWT3tvoPA64Myrvm9AEWHCe1ZAcSUhtXChK0Wx2Y3gRpnFMi+vK\ne7joPOd9CSX9e+1kE2fzzsRn7qmLUYlvtjFEMWlPYMmu1Y+/+KaG9kEBoyN0YgcQA/9UVT8vIrPA\n50TkCVX9ast5f6Kqb+nA/YwuMiMu93PnSI3ApvWIPcD1EDPj9mfOqOqBNFIHzDjX8fdwRhznWvSK\nJnFMSk4qa2aIGrIW7dBDnGMMNydOA1XVF1X189nP68BTwMWTXtcwhoUNDVxN0r7GjfTNPBRIujCj\nLub0P+6EEqox+nS0DkBE7gG+G/jLnKe/T0S+KCJ/ICKv7OR9jc6xUZACGehNEHBYWQ4JT9V3+FZc\n47m4Wug2udmFYGZUUJugcMAYqSrrIZxoZW+mZXToWBBYRGaA3wN+TlXXWp7+PHC3qm6IyEPAfwXu\nK7jOI8AjALddtOKPXhOAb8c17orKu/5kgJUQm///FjTSGCH1od8dlfdNlt+Oa12p6F3XhIoeVD5N\n00kDlSaXT4zywjELy+bEcVtUooQQSCuXr1l2zlAjeV2TjnwRkRLwMeBTqvqvD3H+JeABVV1ud94r\nX13W3/7Y+ROPzzg6HrI0UGE9JFTNG3wspmQvk6ZbeNI6BN9Uh6CwW4eQVvemaaAbxxzHjDjubkkO\nCKpcS2KWzAgMFPfffflzqvrAYc7tRBaQAB8Eniqa/EXkAnBVVVVEXkPqerp+0nsb3SMB06DvAJ2c\n+CsIiz5iQhzbGriWxNTRXeXTMy5i1jnqCssh3r33pgY2T2i/z/sotzfyoo/MAAwxnXABvQ74ceCv\nReQL2bF/AdwFoKqPAm8HfkZEYmAbeFg7sfUwjDFhShz3ZrUZToRJFRac59m4SjWTjFgKMUtd2miU\nC3ojC+kOxJYKw8mJDYCq/im3iAup6geAD5z0XoYxrlxsSfMUEZwqt/kSl7pYXNagqoFIDsbkAjb5\nDzNWCWwMHQ3htQXnSVCuJzFrIxygFtKGMAeOZzn9veClJObeFpXQRJWlMasOHzXMABhDhQAviyqU\nmzTjJ8WxEmJe6lKj9n7TKMjKVSg9YnA+As74iClx7Ghg+ZBd0rY0cCmucSGLQdRRlpLYUoOHHDMA\nxlCx4Dwl2Z/y6EU44yKWk7injVN6yUqIOe2iA1k4R1HJLGdN5xvdtqbUccpFfDOuHkrsb1MDz/bA\n3WT0DmsIYwwVs+IPVL1CukKeKghUjgIvJTFrIdlXbXwjJEfKw7/Nl3Cwa0ScpCJxF325S6M2Bh3b\nARhDRZ2Aan7z9FFd/UNq4J5P6kRJnbI4qhqOHHydcfnvW6MJjKXljR9mAIyhYiVJOO32ix+oKglH\na9Y+LY5TWaHbaqb1PwzEQHzMgHdC/pbfRN/GFzMAxlBRRXk+rnExk1kQ0i5WR0mFPOciFn202/h9\nRlNj0It0yn6yksSc9QfjCBbIHV/MABhDx5oG1uo7TIgQlLbNTVqJ4MAk6EWYwjErjvURTiddCjEV\nSZu7N7KKNrNG9MZ4YgbAGFp2jlFMPpNNfq34bGJc71G/g1lxRFnHq+P8Hsfl+aROKYl3tYGOYjyN\n0cMMgDFWJEVa/VkcoduUEF5WKuOQ3TjGekj4dg9X4XWUuimxGFgaqDFmbGi+Fr6SNm7vNndF5d0e\nvS77mnGeM86kz43eYwbAGCsUuBRXibN8+kZO/QtJvevNxyPSlMtWVU0vwmlnm3Gj99h/nTF2bKvy\nVH2HaXE40kBoLzz/0kYzcZA6OAppmmwjSDy6YXHDDIAxcEyJY0ocNQ2sF7hsOkEnO5xVsoykdro6\ndZQYpdxiCILqwNQhTGWNXxojFOCFpG6poiOKGQBjYBDgnqjMpOy1MAzAs/XqoQTL+sGcuH01CTsa\n+Fab1o/Px3Xuyc53IiSaBmSvDYCQXeP9b5XauOhLbIdgXeFGEIsBGAPDWZeqVDYCpF6ECLgrKvV7\naLlURLgzKhPJXlB3Uhz3RpXC12xp4Ov1Ha4mMdeTmBeSOs+0aSLfS2bbNH1Z8BakHkVsB2AMDKe8\nPxAgFREmcAPZdepMTuBWRCgBkyKFCpsxacvGQSNPZA/S38m37/lkDClmAIx9zInjvC9REmFHAy8l\ncVcbmg8zZQ5m9DSIhlBebSMEcpp+kaiybjGAkaQjLiAReVBEnhaRZ0TkPTnPV0Tkd7Pn/1JE7unE\nfY3Ocsp57ozKTLjUDTPtPPdG5Y7ILB9m/XgzkztuRlV3e94OGut6cLyQ/q7bOUZz3nleXqrwqtIE\nLy9VmB+w3P86aSwiUaXRsjtRZTMLxhujx4l3ACLigV8H3gRcBj4rIh9V1a82nfZTwA1V/U4ReRj4\nV8CPnfTeRme50NJ3FtJA5Xkf8c1jCKUJcLsvseB8FiBVXkhqha6Ra0nMrHjKpO6IRDWTQR5MkbYb\nIWHRR0S6p7GfqLISDjammXeeO5re3zLCHT6NbQxKBhCkekGbGnaVUm+G0W63Oe50wgX0GuAZVX0O\nQER+B3gb0GwA3gb8y+zn/xf4gIiIqtWjDwqe4u3g5DF3AHdH5TTXfrd1o3CvVPhGQVZPAJ6Jq8yJ\nY9I56plS5aBOPwH4Rr3KWR8xJ1l/4pAvLX2hRYAOUqNxwUcDZQAgTY/d7JEmktFfOmEALgLPNz2+\nDLy26BxVjUVkFTgDLHfg/kYHSCj2WNeOYafLyL7Jv4EAi97zYpu0xzUNrA3JBBSAq0nM1Vu0oykV\nOMGKjhtGL+hEDCDvP7h1xjjMOemJIo+IyJMi8uSNleGYBEaF5cz/20xQZekYQmVlkdw/sBNhYoRb\nNxZRVMcwqPUNxnjQiU/iZeDOpsd3AFeKzhGRCJgHVvIupqqPqeoDqvrAqdPjN1H0k6UQ7xqBoEqc\naeQcxwdcVc21+kGP1rlrVHgpiQ8EjIMqLw1AAZgxvnTCBfRZ4D4RuRd4AXgY+J9azvko8E7gz4G3\nA39k/v/BZCnELIUYByfyvddR1kLCnNvL7dcsqHt9DCe9hp//go8oIdRJJ/9B8/8b48WJDUDm0383\n8CnSWOKHVPUrIvKLwJOq+lHgg8BvicgzpCv/h096X6O7nHSNvuA8s1maY8PWb4S0+9T4Tf8pqwUB\nYsPoFx0pBFPVTwCfaDn2C00/7wB/rxP3MgafCREutqSUqioVJ9SS8d74TYow6zyqqUGwjlxGP7FK\nYKPjFEkkeE3VJscxBgBwm4847fZqhM/5iCtJvSeNaAwjD4uyGh0naiuRMJ5MieO0S2sBpKkb2O2+\nxGDVAxvjhBkAo+OsaZLbe7fRYGQcmXOuMBd6dsAkIYzxwQyA0XFuhoRalkraIFFlKYkHUtPHMMaV\ncd2RG11EgWfjKqedZ955EoXrIWZjTFf/kBrFM5n/vxkB1iwGYPQJMwBGV1Dgeki4bpMbkArhLSUx\n53z6kVPSyf/5uDawWkfG6GMGwDB6xLUQczMkzDlHIF35m3k0+okZAGPkEWAm0x/a1NDXFXc9Uww1\njEHADIAx0syI466ovPu44XYxjXvDsCygI1HJ8rbvicosusjevAHHk/Yk8FnT9kbj9jujsskwGwa2\nAzg0s00rSSfClDjOeM8z9ar5cQeUOecLhRbmnT9SY/YIuN2XmXOp2V8PgReS2tjqGhmjgS1iD8kd\nUXm3ehPSloURwllvNnRQmRTJ/QcXwB1xA/CyUiUt5soqeWed42Wliu0jjKHGDMAhKCO5H3QnwpxV\ncQ4kDjjlIiRHkkJJlUkPy5w4PLLvWiKCx/7+xnBjBuAQBPKbmwC5kgdG/5ktcP+oKrUjNqWpiMv9\noDjSuJBhDCtmAA5BDGxroLWHTaKW0jeotJuWj6pHtFOQOhqAnSPsJAxj0DAH9iH5dlzjnqhCI6FQ\ngJWssMcYPNZDgvjSgeOBVId/3nkWJHXf3Ahx27TQdQ3UUUTZjQEFVWKUdUsnNYYYMwCHJAaeiatM\niFBC2NZgGSADTAK8mNS5ze8lfDaqb884z4zz+Gwyn3aO1ZDwQlIvvN5z9SoXfImFzOe/GhJeTKyl\nuzHcmAE4Ijuq7NjHvqtI9nXStfVKSNgMgQXvccBa5q5p1AY08CIsZGmh1YKYTgK8kNTbGgnDGDbM\nABgDgwNu9yXms1V2HeWFuH6iHgJVlKtNTejP++ICvhlxVNVcesb4cCIDICK/AvwIUAOeBX5CVW/m\nnHcJWCddSMWq+sBJ7muMJndFZabF7frZKwj3RGWeqVepdmjXleieEmczClbQZ4wdJ80CegJ4laq+\nGvg68N425/6gqt5vk7+RRwnZN/k3s9jBYrubbap/TZffGDdOZABU9dOq2vhE/QVwx8mHZIwjZZFc\nn78T6WiufUya0ZWo7n7FqlwyXX5jDOlkDOAngd8teE6BT4uIAv9BVR8ruoiIPAI8AnDbRauyHBeq\nGnJXI0G1432E1zXwVH2HKXEoHKkozDBGiVsaABH5Q+BCzlPvU9Xfz855H+ni6sMFl3mdql4RkXPA\nEyLyNVX9TN6JmXF4DOCVry5bus2YEAM3QsJCU3qmqqadxZLOJ9wq49ug3jAa3NIAqOob2z0vIu8E\n3gK8QVtLZfeucSX7viQijwOvAXINgDG+XEnqVDWw6CM8wkZIeCmJrd7CMLrESbOAHgR+HvgBVd0q\nOGcacKq6nv38ZuAXT3JfY3SxPsKG0TtOmgX0AWCW1K3zBRF5FEBEbheRT2TnnAf+VES+CPwV8HFV\n/eQJ72uMOQIsOM8dvsR5H1E2YWbDODIn2gGo6ncWHL8CPJT9/BzwXSe5j2E0I8DLogrlrMtXUGXR\nRXw7rpk2j2EcAVMDNYaOMy6ikk3+wG6jnjuaev8ahnFrzAAYQ8e887kFY0LaBcwwjMNhBsAYOkIb\nWYhgicOGcWjMABhDx0pIDnRi00yfv1OaQYYxDpgaqDF0rIaEKXGcbmr7GIBL9Vo/h2UYQ4cZAGMo\neTGps5zETDtHrMqGZf8YxpExA2AMLXXUWnIaxgmwGIBhGMaYYgbAMAxjTDEDYBiGMaaYATAMwxhT\nzAAYhmGMKWYADMMwxhQp6OEyEIjINeBbXbzFIrDcxeufBBvb8RjUsQ3quMDGdlwGdWwvV9XZw5w4\n0HUAqnq2m9cXkSdV9YFu3uO42NiOx6CObVDHBTa24zKoYxORJw97rrmADMMwxhQzAIZhGGPKuBuA\nx/o9gDbY2I7HoI5tUMcFNrbjMqhjO/S4BjoIbBiGYXSPcd8BGIZhjC1mADJE5J+JiIrIYr/H0kBE\nfklEviQiXxCRT4vI7f0eUwMR+RUR+Vo2vsdFZKHfYwIQkb8nIl8RkSAiA5GhISIPisjTIvKMiLyn\n3+NpICIfEpElEflyv8fSiojcKSJ/LCJPZX/Pf9LvMQGIyISI/JWIfDEb1//W7zG1IiJeRP4/EfnY\nrc41A0D6zwa8Cfh2v8fSwq+o6qtV9X7gY8Av9HtATTwBvEpVXw18HXhvn8fT4MvA3wU+0++BQPph\nBH4d+GHgFcA7ROQV/R3VLr8JPNjvQRQQA/9UVf8G8L3AuwbkfasCP6Sq3wXcDzwoIt/b5zG18k+A\npw5zohmAlH8D/HMYrH6CqrrW9HCaARqfqn5aVePs4V8Ad/RzPA1U9SlVfbrf42jiNcAzqvqcqtaA\n3wHe1ucxAaCqnwFW+j2OPFT1RVX9fPbzOumEdrG/owJN2cgelrKvgflcisgdwN8GfuMw54+9ARCR\ntwIvqOoX+z2WPETkfxeR54F/wGDtAJr5SeAP+j2IAeUi8HzT48sMwEQ2TIjIPcB3A3/Z35GkZC6W\nLwBLwBOqOhDjyvhV0sXsoVrkDXQlcKcQkT8ELuQ89T7gXwBv7u2I9mg3NlX9fVV9H/A+EXkv8G7g\n/YMytuyc95Fu1z88SOMaICTn2MCsGAcdEZkBfg/4uZYdcd9Q1QS4P4t7PS4ir1LVvsdRROQtwJKq\nfk5EXn+Y14yFAVDVN+YdF5G/CdwLfFFEIHVjfF5EXqOqL/VzbDn8NvBxemgAbjU2EXkn8BbgDdrD\nfOIjvGeDwGXgzqbHdwBX+jSWoUJESqST/4dV9b/0ezytqOpNEfnvpHGUvhsA4HXAW0XkIWACmBOR\n/0dV/+eiF4y1C0hV/1pVz6nqPap6D+mH9X/o1eR/K0TkvqaHbwW+1q+xtCIiDwI/D7xVVbf6PZ4B\n5rPAfSJyr4iUgYeBj/Z5TAOPpCuyDwJPqeq/7vd4GojI2UbGm4hMAm9kQD6XqvpeVb0jm8seBv6o\n3eQPY24AhoBfFpEvi8iXSN1UA5EKl/EBYBZ4IktTfbTfAwIQkR8VkcvA9wEfF5FP9XM8WaD83cCn\nSAOZ/1lVv9LPMTUQkY8Afw68XEQui8hP9XtMTbwO+HHgh7L/ry9kK9t+cxvwx9ln8rOkMYBbplsO\nKlYJbBiGMabYDsAwDGNMMQNgGIYxppgBMAzDGFPMABiGYYwpZgAMwzDGFDMAhmEYY4oZAMMwjDHF\nDIBhGMaY8v8Dgv2Yvl4mQ0gAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2371685ff98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 输入数据建立模型\n",
    "model.fit(x_data, y_data)\n",
    "\n",
    "# 获取数据值所在的范围\n",
    "x_min, x_max = x_data[:, 0].min() - 1, x_data[:, 0].max() + 1\n",
    "y_min, y_max = x_data[:, 1].min() - 1, x_data[:, 1].max() + 1\n",
    "\n",
    "# 生成网格矩阵\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),\n",
    "                     np.arange(y_min, y_max, 0.02))\n",
    "\n",
    "z = model.predict(np.c_[xx.ravel(), yy.ravel()])# ravel与flatten类似，多维数据转一维。flatten不会改变原始数据，ravel会改变原始数据\n",
    "z = z.reshape(xx.shape)\n",
    "# 等高线图\n",
    "cs = plt.contourf(xx, yy, z)\n",
    "# 样本散点图\n",
    "plt.scatter(x_data[:, 0], x_data[:, 1], c=y_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             precision    recall  f1-score   support\n",
      "\n",
      "        0.0       1.00      1.00      1.00        47\n",
      "        1.0       1.00      1.00      1.00        53\n",
      "\n",
      "avg / total       1.00      1.00      1.00       100\n",
      "\n"
     ]
    }
   ],
   "source": [
    "predictions = model.predict(x_data)\n",
    "print(classification_report(predictions,y_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
